#pragma once

#include "app/application.h"
#include "input/keyboard.h"

namespace natrium {
	namespace app {
		/*
		 * Tests 'simple' core functionality
		 * - Logger
		 * - Kernel (single thread)
		 * - Event(channel)
		 * - System
		 * - Config
		 */
		class TestCore:
			public Application
		{
		public:
			TestCore();
			virtual ~TestCore();

			virtual bool init();
			virtual void update();
			virtual void shutdown();

			void operator()(const input::Keyboard::KeyPressed& kp);

			//These are auto-loaded from the config file in the section [TEST]
			int mConfigInt;		//config alias => "CFGINT"
			float mConfigFloat;	//config alias => "CFGFLT"
			bool mConfigBool;	//config alias => "CFGBOOL"
		};
	}
}